/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.dp1.pucp.Simulacion.Controlador;

import com.dp1.pucp.Modelo.Clases.Parametrosalgoritmo;
import com.dp1.pucp.Simulacion.DAO.SimulacionDAO;
import com.dp1.pucp.Simulacion.VIsta.ParametrosSimulacionGUI2;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JOptionPane;

/**
 *
 * @author Rodrigo
 */
public class ParametrosControlador {
    
    private SimulacionDAO dao;
    private ParametrosSimulacionGUI2 vista;
    
    public ParametrosControlador(SimulacionDAO dao, ParametrosSimulacionGUI2 vista){
        
        this.dao=dao;
        this.vista=vista;
        
        vista.addLimpiarListener(new selLimpiarListener());
        vista.addGuardarListener(new selGuardarListener());
        
    }
    
    private String validarCampos(){
        String cad=" ";
        Double vald=0.0;
        int vali=0;
        if (vista.getFactorEnfriamiento()==vald){
            cad.concat("Factor Enfriamiento ");
        }
        if (vista.getAleatoriedadGrasp()==vald){
            cad.concat("Factor Aleatoriedad ");
        }
        if (vista.getIteracionGrasp()==vali){
            cad.concat("Numero de Iteraciones ");
        }
        if (vista.getTemperaturaInicial()==vald){
            cad.concat("Temperatura Inicial ");
        }
        if (vista.getTemperaturaFinal()==vald){
            cad.concat("Temperatura Final ");
        }
        return cad;
    }
    
    
    class selGuardarListener implements ActionListener {
        
        @Override
        public void actionPerformed(ActionEvent e) {
            //InsumoProductoView.LimpiarDatos();
            try {
                if (validarCampos()!=" "){
                    String cad="Faltan completar los siguientes campos: ";
                    cad.concat(validarCampos());
                    vista.mostrarError(cad);
                }else{
                    Parametrosalgoritmo param = new Parametrosalgoritmo();
                param.setFGrasp(vista.getAleatoriedadGrasp());
                param.setFactorEnfriamiento(vista.getFactorEnfriamiento());
                param.setIteracionesgrasp(vista.getIteracionGrasp());
                param.setTemperaturaFinal(vista.getTemperaturaFinal());
                param.setTemperaturaInicial(vista.getTemperaturaInicial());
                dao.guardarParametros(param);
                vista.mostrarAviso("Se guardaron exitosamente los parametros");
                vista.limpiarDatos();
                    
                }
            } catch (Exception f) {
                vista.mostrarError("No se guardaron los parametros");
            }

        }
        
    }
    
    
    
    public static void mostrarMensajeErrorVal(String mensaje){
        JOptionPane.showMessageDialog(null, mensaje, "Debe Completar el formulario", JOptionPane.ERROR_MESSAGE);
    }
    
    class selLimpiarListener implements ActionListener {
        
        @Override
        public void actionPerformed(ActionEvent e) {
            vista.limpiarDatos();
            
        }
        
    }
}
